<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul id="box">
        <li>item01</li>
        <li>item02</li>
        <li>item03</li>
        <li>item04</li>
        <li>item05</li>
    </ul>
    <script>
        // call在某个方法调用时候限定该方法中this的指向
        // 作用:以某个对象的身份来调用指定的函数
        // 调用函数.call(调用者,参数1,参数2)
        function show(){
            console.log(this);
        }

        var user={
            name:"王子伟"
        };
        // show();

        show.call(user);//user对象调用show函数
        show.call([10,20,30,40]);//数组调用show函数


        // call在指定this指向的时候，如果传入的不是一个对象数据，call方法会将该数据转换为引用数据类型
        // "aaa"基本数据类型=>引用数据类型  new String("aaa")
        show.call("aaa");
        show.call(1234);
        show.call(false);
        console.log("------------------");
        function show2(a,b){
            console.log(this);
            console.log(a);
            console.log(b);
        }
        // show2("哈哈","嘻嘻");
        show2.call(user,"嘻嘻","哈哈");//多个参数是以逗号隔开


        // console.log(Array.prototype.forEach);
        var lis=document.getElementsByTagName("li");
        console.log(lis);
        Array.prototype.forEach.call(lis,function(dom,index){
            // console.log(dom);//元素的DOM对象
            console.log(index);//元素的索引
        });


    </script>
</body>
</html>